FHIR © HL7.org  |  Server Home  |  FHIR Server FHIR Server 3.7.24  |  FHIR Version n/a  User: [n/a]

Resource OperationDefinition/FHIR Server from package hl7.fhir.uv.crmi#current (78 ms)

Package hl7.fhir.uv.crmi
Type OperationDefinition
Id Id
FHIR Version R4
Source http://hl7.org/fhir/uv/crmi/https://build.fhir.org/ig/HL7/crmi-ig/OperationDefinition-crmi-valueset-validate-code.html
Url http://hl7.org/fhir/uv/crmi/OperationDefinition/crmi-valueset-validate-code
Version 2.0.0-cibuild
Status active
Date 2025-07-11T19:15:46+00:00
Name CRMIValidateCode
Title CRMI Extension of Value Set based Validation
Experimental False
Realm uv
Authority hl7
Description Validate that a coded value is in the set of codes allowed by a value set. If the operation is not called at the instance level, one of the in parameters url, context or valueSet must be provided. One (and only one) of the in parameters code, coding, or codeableConcept must be provided. If a code is provided, either a system or inferSystem **SHOULD** be provided. The operation returns a result (true / false), an error message, and the recommended display for the code. When validating a code or a coding, then the code, system and version output parameters **SHOULD** be populated when possible. When a validating a CodeableConcept, then the codeableConcept output parameter **SHOULD** be populated when possible. This CRMI Extension adds support for providing value set versions, as well as the use of a manifest (parameters or library) to provide system and value set versions for references encountered during validation of the code.
Type true
Kind operation

Resources that use this resource

CapabilityStatement
crmi-artifact-terminology-service CRMI Artifact Terminology Service

Resources that this resource uses

No resources found



Narrative

Note: links and images are rebased to the (stated) source

Generated Narrative: OperationDefinition crmi-valueset-validate-code

URL: [base]/ValueSet/$validate-code

URL: [base]/ValueSet/[id]/$validate-code

Parameters

UseNameScopeCardinalityTypeBindingDocumentation
INurl0..1uri

Value set Canonical URL. The server must know the value set (e.g. it is defined explicitly in the server's value sets, or it is defined implicitly by some code system known to the server

INcontext0..1uri

The context of the value set, so that the server can resolve this to a value set to validate against. The recommended format for this URI is [Structure Definition URL]#[name or path into structure definition] e.g. http://hl7.org/fhir/StructureDefinition/observation-hspc-height-hspcheight#Observation.interpretation. Other forms may be used but are not defined. This form is only usable if the terminology server also has access to the conformance registry that the server is using, but can be used to delegate the mapping from an application context to a binding at run-time

INvalueSet0..1ValueSet

The value set is provided directly as part of the request. Servers may choose not to accept value sets in this fashion. This parameter is used when the client wants the server to expand a value set that is not stored on the server

INvalueSetVersion0..1string

The identifier that is used to identify a specific version of the value set to be used when validating the code. This is an arbitrary value managed by the value set author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available.

INcode0..1code

The code that is to be validated. If a code is provided, a system or a context must be provided (if a context is provided, then the server SHALL ensure that the code is not ambiguous without a system)

INsystem0..1uri

The system for the code that is to be validated

INsystemVersion0..1string

The version of the system, if one was provided in the source data

INdisplay0..1string

The display associated with the code, if provided. If a display is provided a code must be provided. If no display is provided, the server cannot validate the display value, but may choose to return a recommended display name using the display parameter in the outcome. Whether displays are case sensitive is code system dependent

INcoding0..1Coding

A coding to validate

INcodeableConcept0..1CodeableConcept

A full codeableConcept to validate. The server returns true if one of the coding values is in the value set, and may also validate that the codings are not in conflict with each other if more than one is present

INdate0..1dateTime

The date for which the validation should be checked. Normally, this is the current conditions (which is the default values) but under some circumstances, systems need to validate that a correct code was used at some point in the past. A typical example of this would be where code selection is constrained to the set of codes that were available when the patient was treated, not when the record is being edited. Note that which date is appropriate is a matter for implementation policy.

INabstract0..1boolean

If this parameter has a value of true or the parameter is omitted, the client is stating that the validation is being performed in a context where a concept designated as 'abstract' is appropriate/allowed to be used, and the server should regard abstract codes as valid. If this parameter is false, abstract codes are not considered to be valid.

Note that. 'abstract' is a property defined by many HL7 code systems that indicates that the concept is a logical grouping concept that is not intended to be used as a 'concrete' concept to in an actual patient/care/process record. This language is borrowed from object-orientated theory where 'abstract' entities are never instantiated. However in the general record and terminology eco-system, there are many contexts where it is appropriate to use these codes e.g. as decision making criterion, or when editing value sets themselves. This parameter allows a client to indicate to the server that it is working in such a context.

INdisplayLanguage0..*code

Specifies the language for display validation. Note: the display value only needs to match 1 displayLanguage in order for the validate operation to return true.

INuseSupplement0..*canonical

The supplement must be used when validating the code. Use of this parameter should result in $validate-code behaving the same way as if the supplements were included in the value set definition using the http://hl7.org/fhir/StructureDefinition/valueset-supplement

INlenient-display-validation0..1boolean

When the 'lenient-display-validation' parameter is true, an invalid display string will not cause the 'result' output parameter to be 'false'. If the 'lenient-display-validation' parameter is false or absent, then an invalid display will cause the 'result' output parameter to be 'false', i.e. the validation will fail.

INvalueset-membership-only0..1boolean

When 'true', the server will not perform the additional validation tasks beyond validating membership in the value set (e.g. the server won't check displays, etc.)

INinferSystem0..1boolean

If true, the terminology server is required to infer the system from evaluation of the value set definition. The inferSystem parameter is only to be used with the code parameter, and not with the coding nor codeableConcept parameters.

INdefault-valueset-version0..*canonical

Specifies a version to use for a valueset, if the reference to the value set does not specify which version to use. The format is the same as a canonical URL: [system]|[version] - e.g. http://example.org/ValueSet/example|1.0.0. Note that this is similar to the force-system-version parameter but applied to valuesets

INcheck-valueset-version0..*canonical

Edge Case: Specifies a version to use for a valueset. If a reference to a value set specifies a different version, an error is returned instead of the expansion. The format is the same as a canonical URL: [system]|[version] - e.g. http://example.org/ValueSet/example|1.0.0. Note that this is similar to the force-system-version parameter but applied to valuesets

INforce-valueset-version0..*canonical

Edge Case: Specifies a version to use for a valueset. This parameter overrides any specified version in the reference to the value set (and any it depends on). The format is the same as a canonical URL: [system]|[version] - e.g. http://example.org/ValueSet/example|1.0.0. Note that this has obvious safety issues, in that it may result in a value set expansion giving a different list of codes that is both wrong and unsafe, and implementers should only use this capability reluctantly. It primarily exists to deal with situations where specifications have fallen into decay as time passes. If the value is overridden, the version used SHALL explicitly be represented in the expansion parameters. Note that this is similar to the force-system-version parameter but applied to valuesets.

INmanifest0..1canonical (Library)

Specifies a manifest library that provides expansion rules for the operation. The library has an extension expansionParameters that references a contained Parameters resource that contains additional $expand parameters. See the [CRMI specification description of manifests]https://build.fhir.org/ig/HL7/crmi-ig/StructureDefinition-crmi-manifestlibrary.html) and CRMI expansion rules for a complete description of how manifest values are used to provide defaults for expansion parameters. Parameters specified directly in a $validate-code operation override behaviors specified by the manifest parameter. It is an error to supply both a manifest and a manifestParameters.

INmanifestParameters0..1Parameters

Specifies manifest parameters that provide expansion rules for the operation. See the description of manifest parameters for a complete description of how manifest values are used to provide defaults for expansion parameters. Parameters specified directly in a $validate-code operation override behaviors specified by the manifest parameter. It is an error to supply both a manifest and a manifestParameters.

INtx-resource0..*Resource

One or more additional resources that are referred to from the value set provided with the $expand or $validate-code invocation. These may be additional value sets or code systems that the client believes will or may be necessary to perform the operation. Resources provided in this fashion are used preferentially to those known to the system, though servers may return an error if these resources are already known to the server (by URL and version) but differ from that information on the server.

OUTresult1..1boolean

True if the concept details supplied are valid

OUTmessage0..1string

Error details, if result = false. If this is provided when result = true, the message carries hints and warnings

OUTdisplay0..1string

A valid display for the concept if the system wishes to display this to a user

OUTcode0..1code

The code that was validated

OUTsystem0..1uri

The system for the code that was validated

OUTversion0..1string

The version of the system of the code that was validated

OUTcodeableConcept0..1CodeableConcept

A codeableConcept containing codings for all the validated codes

OUTissues0..1OperationOutcome

List of itemised issues with paths constrained to simple FHIRPath. Examples are CodeableConcept, CodeableConcept.coding[0], CodeableConcept.coding[1].display, or Coding.display

Note: the correct behavior of validation with regard to language for Coding.display items is currently undefined, and further development and testing may lead to specific requirements or recommendations in subsequent releases


Source

{
  "resourceType" : "OperationDefinition",
  "id" : "crmi-valueset-validate-code",
  "text" : {
    "status" : "generated",
    "div" : "<div xmlns=\"http://www.w3.org/1999/xhtml\"><p class=\"res-header-id\"><b>Generated Narrative: OperationDefinition crmi-valueset-validate-code</b></p><a name=\"crmi-valueset-validate-code\"> </a><a name=\"hccrmi-valueset-validate-code\"> </a><p>URL: [base]/ValueSet/$validate-code</p><p>URL: [base]/ValueSet/[id]/$validate-code</p><h3>Parameters</h3><table class=\"grid\"><tr><td><b>Use</b></td><td><b>Name</b></td><td><b>Scope</b></td><td><b>Cardinality</b></td><td><b>Type</b></td><td><b>Binding</b></td><td><b>Documentation</b></td></tr><tr><td>IN</td><td>url</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#uri\">uri</a></td><td/><td><div><p>Value set Canonical URL. The server must know the value set (e.g. it is defined explicitly in the server's value sets, or it is defined implicitly by some code system known to the server</p>\n</div></td></tr><tr><td>IN</td><td>context</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#uri\">uri</a></td><td/><td><div><p>The context of the value set, so that the server can resolve this to a value set to validate against. The recommended format for this URI is [Structure Definition URL]#[name or path into structure definition] e.g. http://hl7.org/fhir/StructureDefinition/observation-hspc-height-hspcheight#Observation.interpretation. Other forms may be used but are not defined. This form is only usable if the terminology server also has access to the conformance registry that the server is using, but can be used to delegate the mapping from an application context to a binding at run-time</p>\n</div></td></tr><tr><td>IN</td><td>valueSet</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/valueset.html\">ValueSet</a></td><td/><td><div><p>The value set is provided directly as part of the request. Servers may choose not to accept value sets in this fashion. This parameter is used when the client wants the server to expand a value set that is not stored on the server</p>\n</div></td></tr><tr><td>IN</td><td>valueSetVersion</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td/><td><div><p>The identifier that is used to identify a specific version of the value set to be used when validating the code. This is an arbitrary value managed by the value set author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available.</p>\n</div></td></tr><tr><td>IN</td><td>code</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#code\">code</a></td><td/><td><div><p>The code that is to be validated. If a code is provided, a system or a context must be provided (if a context is provided, then the server SHALL ensure that the code is not ambiguous without a system)</p>\n</div></td></tr><tr><td>IN</td><td>system</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#uri\">uri</a></td><td/><td><div><p>The system for the code that is to be validated</p>\n</div></td></tr><tr><td>IN</td><td>systemVersion</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td/><td><div><p>The version of the system, if one was provided in the source data</p>\n</div></td></tr><tr><td>IN</td><td>display</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td/><td><div><p>The display associated with the code, if provided. If a display is provided a code must be provided. If no display is provided, the server cannot validate the display value, but may choose to return a recommended display name using the display parameter in the outcome. Whether displays are case sensitive is code system dependent</p>\n</div></td></tr><tr><td>IN</td><td>coding</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#Coding\">Coding</a></td><td/><td><div><p>A coding to validate</p>\n</div></td></tr><tr><td>IN</td><td>codeableConcept</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#CodeableConcept\">CodeableConcept</a></td><td/><td><div><p>A full codeableConcept to validate. The server returns true if one of the coding values is in the value set, and may also validate that the codings are not in conflict with each other if more than one is present</p>\n</div></td></tr><tr><td>IN</td><td>date</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#dateTime\">dateTime</a></td><td/><td><div><p>The date for which the validation should be checked. Normally, this is the current conditions (which is the default values) but under some circumstances, systems need to validate that a correct code was used at some point in the past. A typical example of this would be where code selection is constrained to the set of codes that were available when the patient was treated, not when the record is being edited. Note that which date is appropriate is a matter for implementation policy.</p>\n</div></td></tr><tr><td>IN</td><td>abstract</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#boolean\">boolean</a></td><td/><td><div><p>If this parameter has a value of true or the parameter is omitted, the client is stating that the validation is being performed in a context where a concept designated as 'abstract' is appropriate/allowed to be used, and the server should regard abstract codes as valid. If this parameter is false, abstract codes are not considered to be valid.</p>\n<p>Note that. 'abstract' is a property defined by many HL7 code systems that indicates that the concept is a logical grouping concept that is not intended to be used as a 'concrete' concept to in an actual patient/care/process record. This language is borrowed from object-orientated theory where 'abstract' entities are never instantiated. However in the general record and terminology eco-system, there are many contexts where it is appropriate to use these codes e.g. as decision making criterion, or when editing value sets themselves. This parameter allows a client to indicate to the server that it is working in such a context.</p>\n</div></td></tr><tr><td>IN</td><td>displayLanguage</td><td/><td>0..*</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#code\">code</a></td><td/><td><div><p>Specifies the language for display validation. Note: the display value only needs to match 1 displayLanguage in order for the validate operation to return true.</p>\n</div></td></tr><tr><td>IN</td><td>useSupplement</td><td/><td>0..*</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#canonical\">canonical</a></td><td/><td><div><p>The supplement must be used when validating the code. Use of this parameter should result in $validate-code behaving the same way as if the supplements were included in the value set definition using the <a href=\"https://build.fhir.org/ig/HL7/fhir-extensions/StructureDefinition-valueset-supplement.html\">http://hl7.org/fhir/StructureDefinition/valueset-supplement</a></p>\n</div></td></tr><tr><td>IN</td><td>lenient-display-validation</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#boolean\">boolean</a></td><td/><td><div><p>When the 'lenient-display-validation' parameter is true, an invalid display string will not cause the 'result' output parameter to be 'false'. If the 'lenient-display-validation' parameter is false or absent, then an invalid display will cause the 'result' output parameter to be 'false', i.e. the validation will fail.</p>\n</div></td></tr><tr><td>IN</td><td>valueset-membership-only</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#boolean\">boolean</a></td><td/><td><div><p>When 'true', the server will not perform the additional validation tasks beyond validating membership in the value set (e.g. the server won't check displays, etc.)</p>\n</div></td></tr><tr><td>IN</td><td>inferSystem</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#boolean\">boolean</a></td><td/><td><div><p>If true, the terminology server is required to infer the system from evaluation of the value set definition. The inferSystem parameter is only to be used with the code parameter, and not with the coding nor codeableConcept parameters.</p>\n</div></td></tr><tr><td>IN</td><td>default-valueset-version</td><td/><td>0..*</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#canonical\">canonical</a></td><td/><td><div><p>Specifies a version to use for a valueset, if the reference to the value set does not specify which version to use. The format is the same as a canonical URL: [system]|[version] - e.g. http://example.org/ValueSet/example|1.0.0. Note that this is similar to the force-system-version parameter but applied to valuesets</p>\n</div></td></tr><tr><td>IN</td><td>check-valueset-version</td><td/><td>0..*</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#canonical\">canonical</a></td><td/><td><div><p>Edge Case: Specifies a version to use for a valueset. If a reference to a value set specifies a different version, an error is returned instead of the expansion. The format is the same as a canonical URL: [system]|[version] - e.g. http://example.org/ValueSet/example|1.0.0. Note that this is similar to the force-system-version parameter but applied to valuesets</p>\n</div></td></tr><tr><td>IN</td><td>force-valueset-version</td><td/><td>0..*</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#canonical\">canonical</a></td><td/><td><div><p>Edge Case: Specifies a version to use for a valueset. This parameter overrides any specified version in the reference to the value set (and any it depends on). The format is the same as a canonical URL: [system]|[version] - e.g. http://example.org/ValueSet/example|1.0.0. Note that this has obvious safety issues, in that it may result in a value set expansion giving a different list of codes that is both wrong and unsafe, and implementers should only use this capability reluctantly. It primarily exists to deal with situations where specifications have fallen into decay as time passes. If the value is overridden, the version used SHALL explicitly be represented in the expansion parameters. Note that this is similar to the force-system-version parameter but applied to valuesets.</p>\n</div></td></tr><tr><td>IN</td><td>manifest</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#canonical\">canonical</a> (<a href=\"http://hl7.org/fhir/R4/library.html\" title=\"http://hl7.org/fhir/StructureDefinition/Library\">Library</a>)</td><td/><td><div><p>Specifies a manifest library that provides expansion rules for the operation. The library has an extension expansionParameters that references a contained Parameters resource that contains additional $expand parameters. See the [CRMI specification description of manifests]https://build.fhir.org/ig/HL7/crmi-ig/StructureDefinition-crmi-manifestlibrary.html) and <a href=\"https://build.fhir.org/ig/HL7/crmi-ig/artifact-terminology-service.html#expansion-rules\">CRMI expansion rules</a> for a complete description of how manifest values are used to provide defaults for expansion parameters. Parameters specified directly in a $validate-code operation override behaviors specified by the manifest parameter. It is an error to supply both a manifest and a manifestParameters.</p>\n</div></td></tr><tr><td>IN</td><td>manifestParameters</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/parameters.html\">Parameters</a></td><td/><td><div><p>Specifies manifest parameters that provide expansion rules for the operation. See the description of manifest parameters for a complete description of how manifest values are used to provide defaults for expansion parameters. Parameters specified directly in a $validate-code operation override behaviors specified by the manifest parameter. It is an error to supply both a manifest and a manifestParameters.</p>\n</div></td></tr><tr><td>IN</td><td>tx-resource</td><td/><td>0..*</td><td><a href=\"http://hl7.org/fhir/R4/resource.html\">Resource</a></td><td/><td><div><p>One or more additional resources that are referred to from the value set provided with the $expand or $validate-code invocation. These may be additional value sets or code systems that the client believes will or may be necessary to perform the operation. Resources provided in this fashion are used preferentially to those known to the system, though servers may return an error if these resources are already known to the server (by URL and version) but differ from that information on the server.</p>\n</div></td></tr><tr><td>OUT</td><td>result</td><td/><td>1..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#boolean\">boolean</a></td><td/><td><div><p>True if the concept details supplied are valid</p>\n</div></td></tr><tr><td>OUT</td><td>message</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td/><td><div><p>Error details, if result = false. If this is provided when result = true, the message carries hints and warnings</p>\n</div></td></tr><tr><td>OUT</td><td>display</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td/><td><div><p>A valid display for the concept if the system wishes to display this to a user</p>\n</div></td></tr><tr><td>OUT</td><td>code</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#code\">code</a></td><td/><td><div><p>The code that was validated</p>\n</div></td></tr><tr><td>OUT</td><td>system</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#uri\">uri</a></td><td/><td><div><p>The system for the code that was validated</p>\n</div></td></tr><tr><td>OUT</td><td>version</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#string\">string</a></td><td/><td><div><p>The version of the system of the code that was validated</p>\n</div></td></tr><tr><td>OUT</td><td>codeableConcept</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/datatypes.html#CodeableConcept\">CodeableConcept</a></td><td/><td><div><p>A codeableConcept containing codings for all the validated codes</p>\n</div></td></tr><tr><td>OUT</td><td>issues</td><td/><td>0..1</td><td><a href=\"http://hl7.org/fhir/R4/operationoutcome.html\">OperationOutcome</a></td><td/><td><div><p>List of itemised issues with paths constrained to simple FHIRPath. Examples are CodeableConcept, CodeableConcept.coding[0], CodeableConcept.coding[1].display, or Coding.display</p>\n</div></td></tr></table><div><p>Note: the correct behavior of validation with regard to language for Coding.display items is currently undefined, and further development and testing may lead to specific requirements or recommendations in subsequent releases</p>\n</div></div>"
  },
  "extension" : [
    {
      "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
      "valueCode" : "cds"
    }
  ],
  "url" : "http://hl7.org/fhir/uv/crmi/OperationDefinition/crmi-valueset-validate-code",
  "version" : "2.0.0-cibuild",
  "name" : "CRMIValidateCode",
  "title" : "CRMI Extension of Value Set based Validation",
  "status" : "active",
  "kind" : "operation",
  "experimental" : false,
  "date" : "2025-07-11T19:15:46+00:00",
  "publisher" : "HL7 International / Clinical Decision Support",
  "contact" : [
    {
      "telecom" : [
        {
          "system" : "url",
          "value" : "http://www.hl7.org/Special/committees/dss"
        }
      ]
    }
  ],
  "description" : "Validate that a coded value is in the set of codes allowed by a value set.\n\nIf the operation is not called at the instance level, one of the in parameters url, context or valueSet must be provided. One (and only one) of the in parameters code, coding, or codeableConcept must be provided. If a code is provided, either a system or inferSystem **SHOULD** be provided. The operation returns a result (true / false), an error message, and the recommended display for the code. When validating a code or a coding, then the code, system and version output parameters **SHOULD** be populated when possible. When a validating a CodeableConcept, then the codeableConcept output parameter **SHOULD** be populated when possible.\n\nThis CRMI Extension adds support for providing value set versions, as well as the use of a manifest (parameters or library) to provide system and value set versions for references encountered during validation of the code.",
  "jurisdiction" : [
    {
      "coding" : [
        {
          "system" : "http://unstats.un.org/unsd/methods/m49/m49.htm",
          "code" : "001",
          "display" : "World"
        }
      ]
    }
  ],
  "affectsState" : false,
  "code" : "validate-code",
  "comment" : "Note: the correct behavior of validation with regard to language for Coding.display items is currently undefined, and further development and testing may lead to specific requirements or recommendations in subsequent releases",
  "base" : "http://hl7.org/fhir/OperationDefinition/ValueSet-validate-code",
  "resource" : [
    "ValueSet"
  ],
  "system" : false,
  "type" : true,
  "instance" : true,
  "parameter" : [
    {
      "name" : "url",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "Value set Canonical URL. The server must know the value set (e.g. it is defined explicitly in the server's value sets, or it is defined implicitly by some code system known to the server",
      "type" : "uri"
    },
    {
      "name" : "context",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "The context of the value set, so that the server can resolve this to a value set to validate against. The recommended format for this URI is [Structure Definition URL]#[name or path into structure definition] e.g. http://hl7.org/fhir/StructureDefinition/observation-hspc-height-hspcheight#Observation.interpretation. Other forms may be used but are not defined. This form is only usable if the terminology server also has access to the conformance registry that the server is using, but can be used to delegate the mapping from an application context to a binding at run-time",
      "type" : "uri"
    },
    {
      "name" : "valueSet",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "The value set is provided directly as part of the request. Servers may choose not to accept value sets in this fashion. This parameter is used when the client wants the server to expand a value set that is not stored on the server",
      "type" : "ValueSet"
    },
    {
      "name" : "valueSetVersion",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "The identifier that is used to identify a specific version of the value set to be used when validating the code. This is an arbitrary value managed by the value set author and is not expected to be globally unique. For example, it might be a timestamp (e.g. yyyymmdd) if a managed version is not available.",
      "type" : "string"
    },
    {
      "name" : "code",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "The code that is to be validated. If a code is provided, a system or a context must be provided (if a context is provided, then the server SHALL ensure that the code is not ambiguous without a system)",
      "type" : "code"
    },
    {
      "name" : "system",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "The system for the code that is to be validated",
      "type" : "uri"
    },
    {
      "name" : "systemVersion",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "The version of the system, if one was provided in the source data",
      "type" : "string"
    },
    {
      "name" : "display",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "The display associated with the code, if provided. If a display is provided a code must be provided. If no display is provided, the server cannot validate the display value, but may choose to return a recommended display name using the display parameter in the outcome. Whether displays are case sensitive is code system dependent",
      "type" : "string"
    },
    {
      "name" : "coding",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "A coding to validate",
      "type" : "Coding"
    },
    {
      "name" : "codeableConcept",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "A full codeableConcept to validate. The server returns true if one of the coding values is in the value set, and may also validate that the codings are not in conflict with each other if more than one is present",
      "type" : "CodeableConcept"
    },
    {
      "name" : "date",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "The date for which the validation should be checked. Normally, this is the current conditions (which is the default values) but under some circumstances, systems need to validate that a correct code was used at some point in the past. A typical example of this would be where code selection is constrained to the set of codes that were available when the patient was treated, not when the record is being edited. Note that which date is appropriate is a matter for implementation policy.",
      "type" : "dateTime"
    },
    {
      "name" : "abstract",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "If this parameter has a value of true or the parameter is omitted, the client is stating that the validation is being performed in a context where a concept designated as 'abstract' is appropriate/allowed to be used, and the server should regard abstract codes as valid. If this parameter is false, abstract codes are not considered to be valid.\n\nNote that. 'abstract' is a property defined by many HL7 code systems that indicates that the concept is a logical grouping concept that is not intended to be used as a 'concrete' concept to in an actual patient/care/process record. This language is borrowed from object-orientated theory where 'abstract' entities are never instantiated. However in the general record and terminology eco-system, there are many contexts where it is appropriate to use these codes e.g. as decision making criterion, or when editing value sets themselves. This parameter allows a client to indicate to the server that it is working in such a context.",
      "type" : "boolean"
    },
    {
      "name" : "displayLanguage",
      "use" : "in",
      "min" : 0,
      "max" : "*",
      "documentation" : "Specifies the language for display validation. Note: the display value only needs to match 1 displayLanguage in order for the validate operation to return true.",
      "type" : "code"
    },
    {
      "name" : "useSupplement",
      "use" : "in",
      "min" : 0,
      "max" : "*",
      "documentation" : "The supplement must be used when validating the code. Use of this parameter should result in $validate-code behaving the same way as if the supplements were included in the value set definition using the [http://hl7.org/fhir/StructureDefinition/valueset-supplement](https://build.fhir.org/ig/HL7/fhir-extensions/StructureDefinition-valueset-supplement.html)",
      "type" : "canonical"
    },
    {
      "name" : "lenient-display-validation",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "When the 'lenient-display-validation' parameter is true, an invalid display string will not cause the 'result' output parameter to be 'false'. If the 'lenient-display-validation' parameter is false or absent, then an invalid display will cause the 'result' output parameter to be 'false', i.e. the validation will fail.",
      "type" : "boolean"
    },
    {
      "name" : "valueset-membership-only",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "When 'true', the server will not perform the additional validation tasks beyond validating membership in the value set (e.g. the server won't check displays, etc.)",
      "type" : "boolean"
    },
    {
      "name" : "inferSystem",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "If true, the terminology server is required to infer the system from evaluation of the value set definition. The inferSystem parameter is only to be used with the code parameter, and not with the coding nor codeableConcept parameters.",
      "type" : "boolean"
    },
    {
      "name" : "default-valueset-version",
      "use" : "in",
      "min" : 0,
      "max" : "*",
      "documentation" : "Specifies a version to use for a valueset, if the reference to the value set does not specify which version to use. The format is the same as a canonical URL: [system]|[version] - e.g. http://example.org/ValueSet/example|1.0.0. Note that this is similar to the force-system-version parameter but applied to valuesets",
      "type" : "canonical"
    },
    {
      "name" : "check-valueset-version",
      "use" : "in",
      "min" : 0,
      "max" : "*",
      "documentation" : "Edge Case: Specifies a version to use for a valueset. If a reference to a value set specifies a different version, an error is returned instead of the expansion. The format is the same as a canonical URL: [system]|[version] - e.g. http://example.org/ValueSet/example|1.0.0. Note that this is similar to the force-system-version parameter but applied to valuesets",
      "type" : "canonical"
    },
    {
      "name" : "force-valueset-version",
      "use" : "in",
      "min" : 0,
      "max" : "*",
      "documentation" : "Edge Case: Specifies a version to use for a valueset. This parameter overrides any specified version in the reference to the value set (and any it depends on). The format is the same as a canonical URL: [system]|[version] - e.g. http://example.org/ValueSet/example|1.0.0. Note that this has obvious safety issues, in that it may result in a value set expansion giving a different list of codes that is both wrong and unsafe, and implementers should only use this capability reluctantly. It primarily exists to deal with situations where specifications have fallen into decay as time passes. If the value is overridden, the version used SHALL explicitly be represented in the expansion parameters. Note that this is similar to the force-system-version parameter but applied to valuesets.",
      "type" : "canonical"
    },
    {
      "name" : "manifest",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "Specifies a manifest library that provides expansion rules for the operation. The library has an extension expansionParameters that references a contained Parameters resource that contains additional $expand parameters. See the [CRMI specification description of manifests]https://build.fhir.org/ig/HL7/crmi-ig/StructureDefinition-crmi-manifestlibrary.html) and [CRMI expansion rules](https://build.fhir.org/ig/HL7/crmi-ig/artifact-terminology-service.html#expansion-rules) for a complete description of how manifest values are used to provide defaults for expansion parameters. Parameters specified directly in a $validate-code operation override behaviors specified by the manifest parameter. It is an error to supply both a manifest and a manifestParameters.",
      "type" : "canonical",
      "targetProfile" : [
        "http://hl7.org/fhir/StructureDefinition/Library"
      ]
    },
    {
      "name" : "manifestParameters",
      "use" : "in",
      "min" : 0,
      "max" : "1",
      "documentation" : "Specifies manifest parameters that provide expansion rules for the operation. See the description of manifest parameters for a complete description of how manifest values are used to provide defaults for expansion parameters. Parameters specified directly in a $validate-code operation override behaviors specified by the manifest parameter. It is an error to supply both a manifest and a manifestParameters.",
      "type" : "Parameters"
    },
    {
      "name" : "tx-resource",
      "use" : "in",
      "min" : 0,
      "max" : "*",
      "documentation" : "One or more additional resources that are referred to from the value set provided with the $expand or $validate-code invocation. These may be additional value sets or code systems that the client believes will or may be necessary to perform the operation. Resources provided in this fashion are used preferentially to those known to the system, though servers may return an error if these resources are already known to the server (by URL and version) but differ from that information on the server.",
      "type" : "Resource"
    },
    {
      "name" : "result",
      "use" : "out",
      "min" : 1,
      "max" : "1",
      "documentation" : "True if the concept details supplied are valid",
      "type" : "boolean"
    },
    {
      "name" : "message",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "documentation" : "Error details, if result = false. If this is provided when result = true, the message carries hints and warnings",
      "type" : "string"
    },
    {
      "name" : "display",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "documentation" : "A valid display for the concept if the system wishes to display this to a user",
      "type" : "string"
    },
    {
      "name" : "code",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "documentation" : "The code that was validated",
      "type" : "code"
    },
    {
      "name" : "system",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "documentation" : "The system for the code that was validated",
      "type" : "uri"
    },
    {
      "name" : "version",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "documentation" : "The version of the system of the code that was validated",
      "type" : "string"
    },
    {
      "name" : "codeableConcept",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "documentation" : "A codeableConcept containing codings for all the validated codes",
      "type" : "CodeableConcept"
    },
    {
      "name" : "issues",
      "use" : "out",
      "min" : 0,
      "max" : "1",
      "documentation" : "List of itemised issues with paths constrained to simple FHIRPath. Examples are CodeableConcept, CodeableConcept.coding[0], CodeableConcept.coding[1].display, or Coding.display",
      "type" : "OperationOutcome"
    }
  ]
}

XIG built as of ??metadata-date??. Found ??metadata-resources?? resources in ??metadata-packages?? packages.